home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Borland Visual dBASE Professiona v7.0 / DATA1.CAB / Sample_dBASE / Mugs / Mugs.cc < prev    next >
Text File  |  1997-11-20  |  3KB  |  96 lines

  1. //--------------------------------------------------------------
  2. //
  3. //  Mugs.cc - Mugs Sample Application
  4. //
  5. //  Custom Control Library for the Mugs application. This file
  6. //  defines comboboxes that automatically fill in values from
  7. //  the State and Supplier tables.
  8. //
  9. //  The Customer and Supplier forms use ComboState and the 
  10. //  Inventory Cart uses ComboSupplier.
  11. //
  12. //  Dependencies: CONNECT.DMD
  13. //                SUPPLIER.DBF
  14. //                STATE.DBF
  15. //
  16. //  Visual dBASE Samples Group
  17. //
  18. //  $Revision:   1.8  $
  19. //
  20. //  Copyright (c) 1997, Borland International, Inc. 
  21. //  All rights reserved.
  22. //
  23. //---------------------------------------------------------------
  24.  
  25.  
  26. CLASS COMBOSTATE(ParentObj,Name) OF COMBOBOX(ParentObj,Name) custom
  27.    with ( this )
  28.       onOpen   := class::COMBOSTATE_ONOPEN
  29.       fontBold := False
  30.       style := 1
  31.       width := 5
  32.       dropDownWidth := 25
  33.       metric := 0
  34.    endwith
  35.  
  36.    // {Linked Method} this.OnOpen
  37.    function COMBOSTATE_OnOpen
  38.        local dm, q, i
  39.        SET PROCEDURE TO "connect.dmd" ADDITIVE
  40.        dm = new ConnectDataModule()
  41.        q = new Query()
  42.        with ( q )
  43.           database := dm.dbMugs
  44.           sql      := "select * from 'STATE.DBF'"
  45.           active   := true
  46.        endwith
  47.        this.form.aState= new Array( q.rowset.count() )
  48.        i = 1
  49.        do while ( NOT q.rowset.endOfSet )
  50.           this.form.aState[i] := q.rowset.fields["State ID"].value + ;
  51.                        "  -  " + q.rowset.fields["State"].value 
  52.           q.rowset.next()
  53.           i++
  54.        enddo
  55.        q.active = false
  56.        this.form.aState.sort()
  57.        this.dataSource = "ARRAY form.aState"
  58.    return ( i )
  59. ENDCLASS
  60.  
  61.  
  62. CLASS COMBOSUPPLIER(ParentObj,Name) OF COMBOBOX(ParentObj,Name) custom
  63.    with ( this )
  64.       onOpen := class::COMBOSUPPLIER_ONOPEN
  65.       fontBold := false
  66.       fontSize := 8
  67.       style := 2
  68.    endwith
  69.  
  70.    // {Linked Method} this.OnOpen
  71.    function COMBOSUPPLIER_OnOpen
  72.        local dm, q, i
  73.        SET PROCEDURE TO "connect.dmd" ADDITIVE
  74.        dm = new ConnectDataModule()
  75.        q = new Query()
  76.        with ( q )
  77.           database := dm.dbMugs
  78.           sql      := "select * from 'SUPPLIER.DBF'"      
  79.           active   := true
  80.        endwith
  81.        this.form.aSupplier= new Array( q.rowset.count() )
  82.        i = 1
  83.        do while ( NOT q.rowset.endOfSet )
  84.           this.form.aSupplier[i] := q.rowset.fields["COMPANY"].value
  85.           q.rowset.next()
  86.           i++
  87.        enddo
  88.        q.active = false
  89.        this.form.aSupplier.sort()
  90.        this.dataSource = "ARRAY form.aSupplier"
  91.        if ( this.dataLink == "" )
  92.           this.value := this.form.aSupplier[1]
  93.        endif
  94.    return (this.value)
  95. ENDCLASS
  96.